Methods and apparatus for analyzing electronic documents and digital printing systems

ABSTRACT

Methods and apparatus are provided for receiving a PDL File that describes a print job, processing the PDL commands in the file, identifying print settings and printer factors that may affect the entire print job, and reporting such print settings and printer factors. Methods and apparatus are also provided for receiving a PDL File that describes a print job, processing the PDL commands in the file, identifying any objects in the print job that have associated predetermined attributes, and reporting the print objects that have any such predetermined attributes.

FIELD OF THE INVENTION

This invention relates to digital printing. In particular, this invention relates to methods and apparatus for analyzing the characteristics of an electronic document after interpreting page description language commands that describe the document. This invention also relates to methods and apparatus for analyzing the performance of digital printing systems.

BACKGROUND

Referring to FIG. 1, a conventional digital printing workflow is described. At step 10, a user creates or edits a source file using either a software application, such as a word processor, spreadsheet, presentation program, page layout tool, digital image processing program or other similar software program, or a digital device, such as a digital camera, copier, facsimile machine, scanner or other similar digital devices. A source file may include text, images, and graphics, and also may include formatting codes, font characteristics, and other similar elements. For example, a source file created in a word processing program (e.g., Microsoft® Word) may include text along with an embedded image that was created by a photo processing program (e.g., Adobe® Photoshop®), and an embedded graphic created by a spreadsheet program (e.g., Microsoft Excel). Once the source file has been created or edited, the user may want to print the document on a specific output device.

At step 12, prior to printing the source file, the user optionally may analyze the file to determine if the specific output device can print the file. Typically, the user can perform this analysis using any conventional “preflight” software program that compares the data in the source file to a set of rules, often called a “preflight profile,” associated with the specified output device. For example, a preflight profile for a particular printer may include a set of parameters listing the native fonts installed on the printer, the resolution range of the printer, and other printer parameters. If the source file includes text in a font that is not installed on the specified printer, the preflight program may report that the file may not be printed unless the font is provided to the printer as part of the print job. Similarly, if the source file includes an image that is at a resolution that is not within the printer's resolution range, the preflight program may report that the file may not be printed unless the image is converted from the specified resolution to a resolution within the printer's acceptable range. Based on the results of the preflight report, the user may return to step 10 to edit the source file, such as including a font description or modifying the resolution of an image.

Next, at step 14, the source file is translated to a page description format, such as PostScript, PDF, page command language (PCL), or any other programming language or page description language (collectively referred to herein as “PDL”) that can be recognized by an output device or processing device. A PDL file or PDL stream (collectively referred to herein as a “PDL File”) typically includes commands that describe, among other things, printer settings and print objects (e.g., pages, text, images and graphics) included in the print job. This translation step commonly occurs when a user selects a “Print” function within a source application program, which calls a printer driver that translates the source file to a PDL File. Alternatively, a user may submit the source file to some other type of software application (e.g., a distiller program), which then generates the PDL File. In either event, the printer driver or distiller program typically allows the user to specify various print options for the print job. Print options typically include many parameters that affect the appearance of the printed output, such as color mode, brightness, RGB source profile, RGB separation, CMYK source profile, output (device) profile, special black handling, spot color support, and other print options.

After the user selects the desired print options, the printer driver or distiller generates a PDL File that describes the print job. At step 16, the user optionally may analyze the PDL File using a preflight program to verify that the specified output device can print the file. Based on the results of the preflight report, the user may return to step 10 to edit the source file. Otherwise, at step 18, a raster image processor (“RIP”) interprets the commands included in the PDL File, and generates a raster description of the print job. At step 20, the specified printer receives the raster data and prints the print job.

One common problem with such previously known digital printing workflows is that final printed output may not appear as the user intended. Indeed, although preflight programs help to ensure that a digital document may be printed by a specified printer, such programs do not necessarily ensure that the digital document will be correctly printed by the printer. Thus, even though a user receives one or more clean preflight reports, the printed document nevertheless may have printing problems, such as unacceptable moiré, incorrect colors, or other printing problems. Such problems often occur because data in the source file and PDL File may be modified during the various processing steps in the digital printing workflow, sometimes without the user ever knowing that such conversions are occurring.

For example, if a user creates a source file in Microsoft Word, and imports into the document an image object that was described in a Cyan, Magenta, Yellow, Black (“CMYK”) color space, Word typically converts the image object to a Red, Green Blue (“RGB”) color space without the user knowing that such a conversion is occurring. Further, when the user generates the PDL File (e.g., via a printer driver, distiller, or other application) this conversion process may also convert color spaces of objects, add definitions that affect objects, tag objects with a name of a color space (not necessarily the correct color space), or make other changes that may affect a printed output based on the PDL File. Previously known preflight programs may not detect such changes, some of which may only affect the print job when the RIP interprets the commands in the PDL File.

In addition, a print job may print incorrectly because the user incorrectly specified print options when submitting the print job via the printer driver or distiller. Many users do not know the meaning of the various print options, and may not know how to select the options that are required to correctly print their print job. Indeed, some users may simply select default values for all print options, or may guess the values for the options. If the printed output does not print correctly, the user may modify the print options, in hopes that some combination of print options may result in a correctly printed output. Such trial and error approaches are time consuming and costly, and may be completely ineffective. Indeed, in some cases, a user may modify print options to change the appearance of an image on one page of the document, and in doing so may unwittingly change the appearance of a graphic that had been printing correctly on another page of the document. The user may give up in frustration without ever obtaining a correctly printed document.

Moreover, some printer options and factors affect only some objects in a print job, whereas other options and factors affect the entire print job. For example, a user may have specified a default output profile that is suitable for use with conventional paper stock, but may actually be printing a print job on transparency media, which requires an output profile designed for such media. Similarly, a user may have selected a halftone screen that is suitable for print jobs that include text objects, but may actually be printing a print job that consists entirely of images, for which a different halftone screen is more appropriate. In addition, if a long time has elapsed since the printer was last calibrated, a print job may print incorrectly. In general, preflight programs assume that the printer will operate in its ideal state. Preflight programs cannot check for errors in global print settings and printer factors that affect the entire print job if these factors and settings are not defined in the PDL File (e.g., a low density in one of the printer's colorants).

In view of the foregoing, it would be desirable to provide methods and apparatus to help detect problems in a print job.

It also would be desirable to provide methods and apparatus to help correct problems in a print job.

It further would be desirable to provide methods and apparatus to help specify print options for a print job.

It additionally would be desirable to provide methods and apparatus for analyzing the characteristics of an electronic document after interpreting page description language commands that describe the document.

It also would be desirable to provide methods and apparatus for analyzing global print settings and printer factors that affect an entire print job.

SUMMARY

In view of the foregoing, it is an object of this invention to provide methods and apparatus to help detect problems in a print job.

It also is an object of this invention to provide methods and apparatus to help correct problems in a print job.

It further is an object of this invention to provide methods and apparatus to help specify print options for a print job.

It additionally is an object of this invention to provide methods and apparatus for analyzing the characteristics of an electronic document after interpreting page description language commands that describe the document.

It also is an object of this invention to provide methods and apparatus for analyzing global print settings and printer factors that affect an entire print job.

These and other objects of this invention are accomplished by providing methods and apparatus for receiving a PDL File that describes a print job, processing the PDL commands in the file, identifying print settings and printer factors that may affect the entire print job, and reporting such print settings and printer factors. In addition, or alternatively, the present invention provides methods and apparatus for receiving a PDL File that describes a print job, processing the PDL commands in the file, identifying any objects in the print job that have associated predetermined attributes, and reporting the print objects that have any such predetermined attributes.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned objects and features of the present invention can be more clearly understood from the following detailed description considered in conjunction with the following drawings, in which the same reference numerals denote the same elements throughout, and in which:

FIG. 1 is a block diagram of a previously known print workflow;

FIG. 2 is a block diagram of exemplary apparatus in accordance with this invention;

FIG. 3A is a block diagram of an exemplary method of analyzing global print settings and printer factors in accordance with this invention;

FIG. 3B is a block diagram of an exemplary method of analyzing a print job in accordance with this invention;

FIG. 4 is block diagram of an exemplary method of determining and marking attributes of interest in accordance with this invention;

FIG. 5 is an exemplary list of predetermined attributes for use with the present invention;

FIG. 6A is a table including the exemplary list of predetermined attributes of FIG. 5 and exemplary associated markers for use with this invention;

FIG. 6B is a table including the exemplary list of predetermined attributes of FIG. 5 and alternative exemplary associated markers for use with this invention;

FIG. 7 is a block diagram of an exemplary method of analyzing a print job in accordance with this invention;

FIG. 8 is an exemplary print job for use with this invention;

FIG. 9 is a table listing objects and associated attributes included in the print job of FIG. 8; and

FIG. 10 is an exemplary report of the analysis of the print job of FIG. 8 in accordance with this invention.

DETAILED DESCRIPTION

The present invention provides methods and apparatus for receiving a PDL File that describes a print job, processing the PDL commands in the file, identifying print settings and printer factors that may affect the entire print job, and reporting such print settings and printer factors. In addition, or alternatively, the present invention provides methods and apparatus for receiving a PDL File that describes a print job, processing the PDL commands in the file, identifying any objects in the print job that have associated predetermined attributes, and reporting the print objects that have any such predetermined attributes.

Referring now to FIG. 2, an exemplary printing system in accordance with this invention is described. Printing system 30 includes client computers 32 a-32 c coupled via network 36 a to printer controllers 34 a and 34 b, which in turn are coupled via network 36 b to printers 38 a-38 d. Client computers 32 a-32 c may be personal computers, laptop computers, handheld computers, personal digital assistants, cellular phones, or any other similar computing device that may be used to create and/or store source documents for printing. Client computers 32 a-32 c may be the same make and model computing device, or may be different computing devices. For example, client computer 32 a may be a desktop personal computer, client computer 32 b may be a laptop computer, and client computer 32 c may be a web-enabled cellular telephone. Network 36 a may be any conventional computer network, such as a wired network, wireless network, satellite network, local area network, wide area network, the Internet, Ethernet, or any similar network or combination thereof. Printing system 30 may include more than or less than three client computers 32 a-32 c.

Each of printer controllers 34 a and 34 b may be any conventional printer controller used to receive print jobs in a PDL format and provide rasterized data for printing by one or more of printers 38 a-38 d. In particular, printer controllers 34 a and 34 b may include RIPs 40 a and 40 b, respectively, which may be any conventional hardware, software, or combination hardware and software RIP that interprets PDL commands and provides rasterized output data. Printer controllers 34 a and 34 b may be the same make and model of printer controller, or may be different controllers. One or more of printer controllers 34 a and 34 b may be an external controller (i.e., physically separate from printers 38 a-38 d), or may be an internal controller (i.e., included in a corresponding one of printers 38 a-38 d). For example, printer controller 34 a may be an internal controller coupled to printer 38 a, and printer controller 34 b may be an external controller coupled to printers 38 b, 38 c and 38 d. Printing system 30 may include more than or less than two printer controllers 34 a and 34 b.

Each of printer controllers 34 a and 34 b may be coupled via network 36 b to printers 38 a-38 d. Network 36 b may be any conventional computer network, such as a wired network, wireless network, satellite network, local area network, wide area network, the Internet, Ethernet, or any similar network or combination thereof. As described in more detail below, printer controllers 34 a and 34 b may include software 42 a and 42 b, respectively, for implementing methods in accordance with this invention. Networks 36 a and 36 b may be the same network, or they may be different networks. Printers 38 a-38 d may be any conventional printers, such as a color printer, black and white printer, inkjet printer, dye sublimation printer, laser printer, copier, plotter, facsimile machine, or any other similar printer. Printers 38 a-38 d may be the same make and model of printer, or may be different printers. For example, printer 38 a may be an inkjet printer, printer 38 b may be a black and white laser printer, printer 38 c may be a networked color copier, and printer 38 d may be a wide format color printer. Printing system 30 may include more than or less than four printers 38 a-38 d.

Client computers 32 a-32 c optionally may be coupled to one or more digital image input devices, such as digital camera 44, scanner 46 or other digital image input device. Client computers 32 a-32 c may include one or more source files 48 a-48 c, respectively, printer drivers or distiller programs 50 a-50 c, respectively, and PDL files 48 a′-48 c′, respectively. Each of source files 48 a-48 c may be created using any conventional software program for creating or displaying printable documents, such as a word processor, spreadsheet, presentation program, page layout program, photo editing application, Internet browser, or any similar program or combination thereof.

For example, source file 48 a may be a document created using a word processor program (e.g., Microsoft Word) that includes an image created in a photo editing application (e.g., Adobe Photoshop). Source file 48 b may be a document created in a presentation program (e.g., Microsoft PowerPoint) that includes a graph created in a spreadsheet (e.g., Microsoft Excel). Source file 48 c may be a digital image that was scanned using scanner software (e.g., ScanSoft PaperPort), and then edited using a graphics design program (e.g., CorelDraw Graphics Suite). Printer drivers or distiller programs 50 a-50 c may be any conventional printer drivers or distiller programs for use with printer controllers 34 a and 34 b and printers 38 a-38 d. PDL Files 48 a′-48 c′, may be any conventional PDL Files translated from source files 48 a-48 c, respectively, by printer drivers or distiller programs 50 a-50 c, respectively.

As described above, printer controllers 34 a and 34 b may include software 42 a and 42 b, respectively, for implementing methods for processing PDL Files in accordance with this invention. Referring now to FIG. 3A, a first exemplary method is described. At step 52, printer controller 34 a receives PDL File 48 a′ from client computer 32 a. PDL File 48 a′ may include PDL commands that describe printer settings and print objects (e.g., pages, text, images and graphics) included in the print job. At step 54, printer controller 34 a begins interpreting the PDL commands in file 48 a′. At step 56 a, printer controller 34 a identifies and reports global print settings and printer factors that may affect the entire print job.

For example, printer controller 34 a may process a PDL command that specifies the halftone screen or output profile that shall be used to process the print job. Also, printer controller 34 a may retrieve data describing the date and time that a specified printer, such as printer 38 a, was last calibrated. Such data may be stored in memory, for example, in printer 38 a or printer controller 34 a. Printer controller 34 a may report such global printer settings and printer factors in any conventional manner. For example, printer controller 34 a may cause printer 38 a to print a report that specifies the global printer settings and printer factors. Alternatively, printer controller 34 a may transmit data for display by client computer 32 a that specifies the global printer settings and printer factors.

Persons of ordinary skill in the art will understand that other techniques may be used to report the nature or status of global printer settings and printer factors. For example, in optional step 58, a PDL File having known characteristics (i.e., a “golden” PDL File) may be provided to printer controller 34 a for printing on printer 38 a. The golden PDL File may include objects that should print in a certain way if the printer is functioning properly and global print settings are properly specified. A user may print the golden PDL File to provide a visual indication of whether the printer is functioning properly and global print setting are properly specified.

Referring now to FIG. 3B, a second exemplary method for processing PDL Files in accordance with this invention is described. Steps 52 and 54 proceed as described above in connection with FIG. 3B. At step 56 b, printer controller 34 a identifies and reports any print objects in the print job that have attributes that match predetermined print object attributes. Referring now to FIG. 4, an exemplary method for predetermining such print object attributes in accordance with this invention is described. As described above, PDL File 48 a′ may include PDL commands that describe print objects (e.g., pages, text, images and graphics) included in the print job. Each print object has one or more associated attributes. For text objects, exemplary attributes include font name, font size, color space, color value, location, orientation, and other similar attributes. For image objects exemplary attributes include color space, location, orientation, and other similar attributes. For graphics objects, exemplary attributes include color space, color value, location, orientation, and other similar attributes. Beginning at step 60, one or more print object attributes are determined that are of interest in a particular print job.

FIG. 5 illustrates a table 70 listing exemplary predetermined print object attributes 72 a-72 n. Attribute 72 a may be used to identify all text that is specified in Helvetica font, attribute 72 b may be used to identify all text that is specified in Arial 18 point font, attribute 72 c may be used to identify all objects (text, images, graphics) that are defined in an RGB color space, attribute 72 d may be used to identify all graphics that have Pantone® 117 spot color values, and attribute 72 n may be used to identify all graphics objects that have a landscape orientation. Persons of ordinary skill in the relevant art will understand that the examples listed are for illustrative purposes only, and that other attributes may be defined, and that more than or less than the number of attributes shown in FIG. 5 may be used.

Referring again to FIG. 4, after print object attributes have been determined, at step 62 a corresponding unique marker is assigned to each predetermined attribute. The unique marker may be any type of identification that may be used to identify the presence of an object associated with a predetermined attribute in the print job. Referring to FIGS. 6A and 6B, two exemplary sets of unique markers associated with the exemplary attributes in FIG. 5 are described. As shown in FIG. 6A, attribute 72 a (font name=Helvetica) is associated with unique marker 74 a (replace color values with shades of cyan), attribute 72 b (font name=Arial and font size=18 pt) is associated with unique marker 74 b (replace color values with shades of magenta), attribute 72 c (color space=RGB) is associated with unique marker 74 c (replace color values with shades of yellow), attribute 72 d (object=graphic and color value=Pantone 117) is associated with unique marker 74 d (tag object with text “SPOT”) and attribute 72 n (object=graphic and orientation=landscape) is associated with unique marker 74 n (invert color values).

Alternatively, as shown in FIG. 6B attribute 72 a (font name=Helvetica) is associated with unique marker 74 a′ (report page number and location in yellow text), attribute 72 b (font name=Arial and font size=18 pt) is associated with unique marker 74 b′ (report page number and location in magenta text), attribute 72 c (color space=RGB) is associated with unique marker 74 c′ (report page number and location in cyan+yellow text), attribute 72 d (object=graphic and color value=Pantone 117) is associated with unique marker 74 d′ (report page number and location in spot colored text) and attribute 72 n (object=graphic and orientation=landscape) is associated with unique marker 74 n′ (report page number and location in cyan+magenta text). The examples shown in FIGS. 6A and 6B are for illustrative purposes only, and other similar techniques may be used to associate unique markers to the defined print object attributes. For example, each identified attribute may be uniquely associated with a corresponding audio clip, such as a spoken phrase, musical note, bell, whistle, or other similar marker.

Referring now to FIG. 7, an exemplary method in accordance with this invention for interpreting PDL commands and for identifying print objects having attributes that match the predetermined attributes is described. Exemplary process 80 begins at step 82, in which printer controller 34 a reads a PDL command in PDL File 48 a′. At step 84, printer controller 34 a interprets the PDL command. For example, the command may instruct printer controller 34 a to draw a graphic object having a specific size, shape and set of color values at a specific location and orientation. At step 86, the attributes of the object processed in step 84 are checked to determine if any attribute matches the predetermined attributes. If the result of the query is NO, the processing proceeds to step 90. If the result of the query is YES, however, the object is marked at step 88 using the marker associated with the matched attribute. Processing then proceeds to step 90, where a query determines if PDL File 48 a′ includes any more PDL commands. If the result of the query is NO, processing proceeds to step 92, at which any objects associated with matching attributes are reported.

Printer controller 34 a may report marked objects in any conventional manner. For example, printer controller 34 a may cause printer 38 a to print the print job including the affects of any associated markers. Thus, if the marking scheme of FIG. 6A is used, printer 38 a will print the print job as follows: any text in Helvetica font will be printed in shades of cyan (regardless of font size), any text in Arial 18 point font will be printed in shades of magenta, any text, images and graphics defined in an RGB color space (device dependent or device independent) will be printed in shades of yellow, any graphics having a color value of Pantone 117 will be tagged with the text “SPOT,” and any image or graphics having a landscape orientation will be printed in inverted colors. Persons of ordinary skill in the art will understand that other techniques may be used to report the marked objects. For example, printer controller 34 a could display the print job including the affects of any associated markers on a display device, such as cathode ray tube, liquid crystal display, plasma display or other similar display device. The display device could be a display device included in client computer 32 a, or any other display device coupled to printer controller 34 a.

Referring now to FIG. 8, an exemplary PDL File that may be processed using methods and apparatus in accordance with this invention is described. PDL File 48 a′ includes objects that define pages 100 a-100 c. Page 100 a includes text 102 and image 104, page 100 b includes image 106 and text 108, and page 100 c includes graphics 110, 112 and 114. FIG. 9 illustrates a table summarizing the objects described in PDL File 48 a′ and each object's associated attributes. Text 102 has associated attributes: font name=Helvetica, font size=12 point and color space=CMYK (device dependent). Image 104 has the associated attributes: color space=RGB (device independent) and orientation=portrait. Image 106 is identical to image 104, but has the associated attributes: color space=CMYK (calibrated CMYK) and orientation=portrait. Text 108 has associated attributes: font name=Arial, font size=18 point and color space=CMYK (device dependent). Graphic 110 has associated attributes: color value=Pantone 117, orientation=portrait and color space=spot. Graphic 112 has associated attributes: color value=C1, M1, Y1, K1, orientation=portrait, and color space=CMYK (calibrated CMYK). Graphic 114 has associated attributes: color value=C2, M2, Y2, K2, orientation=landscape, and color space=CMYK (device dependent).

If the marking scheme of FIG. 6A is used during processing of this exemplary PDL File, printer 38 a will print the print job as shown in FIG. 10. In particular, text 102 is printed in shades of Cyan, image 104 is printed in shades of Yellow, image 106 is printed normally, text 108 is printed in shades of magenta, graphic 110 is printed with the tag “SPOT,” graphic 112 is printed normally, and graphic 114 is printed using inverted color values. Thus, if a user knows the marking scheme that was used to process the print job, the printed document may be used to easily and visually determine the attributes of each object in the print job.

If the marking scheme of FIG. 6B is used during processing of the exemplary PDL File of FIG. 8, printer 38 a will print a report that specifies the page number and location of each object in color coded text, where the color codes convey identifying information about the matching attributes. Persons of ordinary skill in the relevant art will understand that other methods may be used to report objects associated with matching attributes. For example, an audio report may be provided that describes each matching object and its matching attributes. All such alternative methods are included within the scope and spirit of this invention.

Persons of ordinary skill in the relevant art will understand that methods and apparatus in accordance with this invention may be used to facilitate setting print options when submitting a print job via a printer driver, distiller, or other similar application. For example, methods and apparatus in accordance with this invention may be used to determine the attributes of each object in a PDL File, and then specify print options accordingly. Such techniques may be used prior to obtaining a printed copy of a print job, or after a copy has been printed.

Persons of ordinary skill in the art will further understand that methods in accordance with this invention may be implemented as a computer software product for use with a computer system. The programs of the software product define the functions of the exemplary embodiments and may be delivered to a computer via a variety of signal-bearing media, which include, but are not limited to: (a) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by CD-ROM drive); (b) alterable information stored on writable storage media (e.g., floppy disks within diskette drive or hard-disk drive); or (c) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent alternative embodiments of this invention.

Persons of ordinary skill in the art further will recognize that methods and apparatus in accordance with this invention may be implemented using steps or devices other than those shown and discussed above. All such modifications are within the scope of the present invention, which is limited only by the claims that follow. 

1. A method implemented by a computer comprising a processor and a memory, the processor configured to implement instructions stored in the memory for analyzing a print job comprising a plurality of graphics, each graphic having at least one associated color-space definition, the method comprising: configuring at least one user computer in a printing environment, wherein said computer includes an audio output; determining, by the computer, a color-space schema; associating, by the computer, a corresponding auditory sound with each color-space schema; receiving, by the computer PostScript commands that describe the graphics included in the print job; interpreting, by the computer, the PostScript commands to process each graphic in the print job and the at least one associated color-space definition; reporting, by the computer, the color-space schema not present in said printing environment, wherein the color-space schema comprises a device-dependent color space schema; determining, by the computer, if said graphic's color-space definition matches said color-space schema not present in said printing environment; and reporting, by the computer, the results of any graphic with the associated color-space definition that matches any color-space schema not present in said printing environment by transmitting said auditory sound via said audio output.
 2. The method of claim 1, wherein the graphic's color-space definition comprises a red, green, blue color value.
 3. The method of claim 1, wherein the graphic's color-space definition comprises a cyan, magenta, yellow color value.
 4. The method of claim 1, wherein the graphic's color-space definition comprises a spot color value. 